package com.lcu.bos.dao.base;

import com.lcu.bos.modle.PageBean;
import com.lcu.bos.modle.Region;
import org.hibernate.criterion.DetachedCriteria;

import java.io.Serializable;
import java.util.List;

/**
 * 这是公共的接口
 */
public interface IBaseDao<T> {
    //增
    public void  save(T entity);
    //删
    public  void  delete(T entity);
    //改
    public  void  update (T entity);
    //查(id)
    public  T find(Serializable id);
    //查询所有数据
    public List<T> findAll();
    //根据离线查询条件查找所有的数据
    public List<T> findAllbyDetachedCriteria(DetachedCriteria dc);
    //通过hql语句和参数执行公共的更新语句
    public void executeUpdate(String hql,Object ...objs);
    //通过配置文件配置的hql语句查询
    public void executeUpdateByQueryName(String queryName, Object... objs);
    //保存整个列表中的数据
    void saveList(List<T> lists);
    //抽取公共的分页方法
    public void pageQuery(PageBean<T> pb);


}
